前言
实际上,Linux上也有分区的概念,通过df -h
,就可以了解到各个分区的使用情况。当线上服务器跑了一段时间。可能会因为业务,产生的数据和日志把分区打满。那么这个时候,磁盘扩容,且不影响服务的使用就很重要了。
两种扩容方式
空余磁盘扩容
- fdisk -l 查看可用磁盘,由结果我们可知道/dev/xvdb可以使用
[root@localhost home]# fdisk -l
Disk /dev/xvda: 274.9 GB, 274877906944 bytes
255 heads, 63 sectors/track, 33418 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c5cd2
Device Boot Start End Blocks Id System
/dev/xvda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/xvda2 64 33419 267922432 8e Linux LVM
Disk /dev/xvdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
pvcreate /dev/xvdb
通过pvcreate命令将磁盘/dev/xvdb创建为一个系统PVvgs
查看vg 看到vg为Volgroupvgextend VolGroup /dev/xvdb
将/dev/xvd此PV加入Vol Group
此处可以通俗理解为, VolGroup是一个磁盘资源池,使用vgdisplay查看资源池的名称vgs
命令可以查看 VolGroup还有多少可用的空间lvextend -L +5G /dev/mapper/VolGroup-lv_root
为/ 添加5G的空间
我们通过df -h知道 /根目录挂载了这个/dev/mapper/VolGroup-lv_rootresize2fs /dev/VolGroup/lv_root
重新加载逻辑卷大小
如果执行报错,xfs文件系统,用这个命令代替xfs_growfs /dev/VolGroup/lv_root
这里重新加载逻辑卷大小,主要是做了逻辑卷和物理卷的映射,分配inode和blockdf -h
再次执行,此时/ 可用空间变大。
其他LVM分区空余空间进行扩容
- 可能遇到一个问题,其他逻辑分区空间挺多,也可以把该逻辑分区的资源回收,加给需要空间的分区
[root@localhost home]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
60G 24G 34G 41% /
tmpfs 935M 0 935M 0% /dev/shm
/dev/xvda1 477M 93M 360M 21% /boot
/dev/mapper/VolGroup-lv_home
199G 60M 189G 1% /home
umount /home
由于/home挂载在/dev/mapper/VolGroup-lv_home,所以要先停用取消挂载
,记得备份home数据!!!
。如果有进程占用到/home,排查下,关掉进程。e2fsck -f /dev/mapper/VolGroup-lv_home
检查逻辑分区/dev/mapper/VolGroup-lv_homeresize2fs -p /dev/mapper/VolGroup-lv_home 50G
重新设定逻辑分区大小vgdisplay
查看可用的空间(Free表示可用的空间)lvreduce -L 100G /dev/mapper/VolGroup-lv_home
通过lvreduce重新分配资源。100G
的意思是指分配100G给VolGroup-lv_home-100G
是回收VolGroup-lv_home的100G的资源,注意参数和数字!!!!
vgdisplay
查看可用空间,会发现/home的资源再回收到资源池了。
VG Size 265.50 GiB
PE Size 4.00 MiB
Total PE 67969
Alloc PE / Size 42209 / 164.88 GiB
Free PE / Size 25760 / 100.62 GiB
lvextend -L +100.62G /dev/mapper/VolGroup-lv_root
给VolGroup-lv_root增加空间resize2fs -p /dev/mapper/VolGroup-lv_root
重新加载逻辑卷的大小,工作完成,不用任何重启,也不会影响业务使用。
总结
实际上。做操作先明白磁盘原理,有兴趣可以百度下Device Mapper
。磁盘是物理卷。我们目录挂载的都是逻辑卷。逻辑卷和物理卷是一个映射关系。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。